import __clrclasses__.System.Runtime.Serialization.Formatters as Formatters
from __clrclasses__.System import Type as _n_0_t_0
from __clrclasses__.System import Array as _n_0_t_1
from __clrclasses__.System import TypeCode as _n_0_t_2
from __clrclasses__.System import Byte as _n_0_t_3
from __clrclasses__.System import Char as _n_0_t_4
from __clrclasses__.System import DateTime as _n_0_t_5
from __clrclasses__.System import Decimal as _n_0_t_6
from __clrclasses__.System import SByte as _n_0_t_7
from __clrclasses__.System import UInt16 as _n_0_t_8
from __clrclasses__.System import UInt32 as _n_0_t_9
from __clrclasses__.System import UInt64 as _n_0_t_10
from __clrclasses__.System import Attribute as _n_0_t_11
from __clrclasses__.System import EventArgs as _n_0_t_12
from __clrclasses__.System import ValueType as _n_0_t_13
from __clrclasses__.System import SystemException as _n_0_t_14
from __clrclasses__.System import Exception as _n_0_t_15
from __clrclasses__.System import Enum as _n_0_t_16
from __clrclasses__.System import IComparable as _n_0_t_17
from __clrclasses__.System import IFormattable as _n_0_t_18
from __clrclasses__.System import IConvertible as _n_0_t_19
from __clrclasses__.System.Collections import IEnumerator as _n_1_t_0
from __clrclasses__.System.IO import Stream as _n_2_t_0
from __clrclasses__.System.Reflection import MemberInfo as _n_3_t_0
from __clrclasses__.System.Reflection import Assembly as _n_3_t_1
from __clrclasses__.System.Runtime.InteropServices import _Attribute as _n_4_t_0
from __clrclasses__.System.Runtime.InteropServices import _Exception as _n_4_t_1
from __clrclasses__.System.Runtime.Serialization.Formatters import TypeFilterLevel as _n_5_t_0
import typing
class Formatter(IFormatter):
    pass
class FormatterConverter(IFormatterConverter):
    def __init__(self) -> FormatterConverter:...
class FormatterServices(object):
    @staticmethod
    def CheckTypeSecurity(t: _n_0_t_0, securityLevel: _n_5_t_0):...
    @staticmethod
    def GetObjectData(obj: object, members: _n_0_t_1[_n_3_t_0]) -> _n_0_t_1[object]:...
    @staticmethod
    def GetSafeUninitializedObject(type: _n_0_t_0) -> object:...
    @staticmethod
    def GetSerializableMembers(type: _n_0_t_0, context: StreamingContext) -> _n_0_t_1[_n_3_t_0]:...
    @staticmethod
    def GetSerializableMembers(type: _n_0_t_0) -> _n_0_t_1[_n_3_t_0]:...
    @staticmethod
    def GetSurrogateForCyclicalReference(innerSurrogate: ISerializationSurrogate) -> ISerializationSurrogate:...
    @staticmethod
    def GetTypeFromAssembly(assem: _n_3_t_1, name: str) -> _n_0_t_0:...
    @staticmethod
    def GetUninitializedObject(type: _n_0_t_0) -> object:...
    @staticmethod
    def PopulateObjectMembers(obj: object, members: _n_0_t_1[_n_3_t_0], data: _n_0_t_1[object]) -> object:...
class IDeserializationCallback():
    def OnDeserialization(self, sender: object):...
class IFormatter():
    @property
    def Binder(self) -> SerializationBinder:"""Binder { get; set; } -> SerializationBinder"""
    @property
    def Context(self) -> StreamingContext:"""Context { get; set; } -> StreamingContext"""
    @property
    def SurrogateSelector(self) -> ISurrogateSelector:"""SurrogateSelector { get; set; } -> ISurrogateSelector"""
    def Deserialize(self, serializationStream: _n_2_t_0) -> object:...
    def Serialize(self, serializationStream: _n_2_t_0, graph: object):...
class IFormatterConverter():
    def Convert(self, value: object, typeCode: _n_0_t_2) -> object:...
    def Convert(self, value: object, type: _n_0_t_0) -> object:...
    def ToBoolean(self, value: object) -> bool:...
    def ToByte(self, value: object) -> _n_0_t_3:...
    def ToChar(self, value: object) -> _n_0_t_4:...
    def ToDateTime(self, value: object) -> _n_0_t_5:...
    def ToDecimal(self, value: object) -> _n_0_t_6:...
    def ToDouble(self, value: object) -> float:...
    def ToInt16(self, value: object) -> int:...
    def ToInt32(self, value: object) -> int:...
    def ToInt64(self, value: object) -> int:...
    def ToSByte(self, value: object) -> _n_0_t_7:...
    def ToSingle(self, value: object) -> float:...
    def ToString(self, value: object) -> str:...
    def ToUInt16(self, value: object) -> _n_0_t_8:...
    def ToUInt32(self, value: object) -> _n_0_t_9:...
    def ToUInt64(self, value: object) -> _n_0_t_10:...
class IObjectReference():
    def GetRealObject(self, context: StreamingContext) -> object:...
class ISafeSerializationData():
    def CompleteDeserialization(self, deserialized: object):...
class ISerializable():
    def GetObjectData(self, info: SerializationInfo, context: StreamingContext):...
class ISerializationSurrogate():
    def GetObjectData(self, obj: object, info: SerializationInfo, context: StreamingContext):...
    def SetObjectData(self, obj: object, info: SerializationInfo, context: StreamingContext, selector: ISurrogateSelector) -> object:...
class ISurrogateSelector():
    def ChainSelector(self, selector: ISurrogateSelector):...
    def GetNextSelector(self) -> ISurrogateSelector:...
    def GetSurrogate(self, type: _n_0_t_0, context: StreamingContext, selector: ISurrogateSelector) -> ISerializationSurrogate:...
class ObjectIDGenerator(object):
    def __init__(self) -> ObjectIDGenerator:...
    def GetId(self, obj: object, firstTime: bool) -> int:...
    def HasId(self, obj: object, firstTime: bool) -> int:...
class ObjectManager(object):
    def __init__(self, selector: ISurrogateSelector, context: StreamingContext) -> ObjectManager:...
    def DoFixups(self):...
    def GetObject(self, objectID: int) -> object:...
    def RaiseDeserializationEvent(self):...
    def RaiseOnDeserializingEvent(self, obj: object):...
    def RecordArrayElementFixup(self, arrayToBeFixed: int, index: int, objectRequired: int):...
    def RecordArrayElementFixup(self, arrayToBeFixed: int, indices: _n_0_t_1[int], objectRequired: int):...
    def RecordDelayedFixup(self, objectToBeFixed: int, memberName: str, objectRequired: int):...
    def RecordFixup(self, objectToBeFixed: int, member: _n_3_t_0, objectRequired: int):...
    def RegisterObject(self, obj: object, objectID: int, info: SerializationInfo, idOfContainingObj: int, member: _n_3_t_0, arrayIndex: _n_0_t_1[int]):...
    def RegisterObject(self, obj: object, objectID: int, info: SerializationInfo, idOfContainingObj: int, member: _n_3_t_0):...
    def RegisterObject(self, obj: object, objectID: int, info: SerializationInfo):...
    def RegisterObject(self, obj: object, objectID: int):...
class OnDeserializedAttribute(_n_0_t_11, _n_4_t_0):
    def __init__(self) -> OnDeserializedAttribute:...
class OnDeserializingAttribute(_n_0_t_11, _n_4_t_0):
    def __init__(self) -> OnDeserializingAttribute:...
class OnSerializedAttribute(_n_0_t_11, _n_4_t_0):
    def __init__(self) -> OnSerializedAttribute:...
class OnSerializingAttribute(_n_0_t_11, _n_4_t_0):
    def __init__(self) -> OnSerializingAttribute:...
class OptionalFieldAttribute(_n_0_t_11, _n_4_t_0):
    @property
    def VersionAdded(self) -> int:"""VersionAdded { get; set; } -> int"""
    def __init__(self) -> OptionalFieldAttribute:...
class SafeSerializationEventArgs(_n_0_t_12):
    @property
    def StreamingContext(self) -> StreamingContext:"""StreamingContext { get; } -> StreamingContext"""
    def AddSerializedState(self, serializedState: ISafeSerializationData):...
class SerializationBinder(object):
    def BindToName(self, serializedType: _n_0_t_0, assemblyName: str, typeName: str):...
    def BindToType(self, assemblyName: str, typeName: str) -> _n_0_t_0:...
class SerializationEntry(_n_0_t_13):
    @property
    def Name(self) -> str:"""Name { get; } -> str"""
    @property
    def ObjectType(self) -> _n_0_t_0:"""ObjectType { get; } -> Type"""
    @property
    def Value(self) -> object:"""Value { get; } -> object"""
class SerializationException(_n_0_t_14, ISerializable, _n_4_t_1):
    def __init__(self, message: str, innerException: _n_0_t_15) -> SerializationException:...
    def __init__(self, message: str) -> SerializationException:...
    def __init__(self) -> SerializationException:...
class SerializationInfo(object):
    @property
    def AssemblyName(self) -> str:"""AssemblyName { get; set; } -> str"""
    @property
    def FullTypeName(self) -> str:"""FullTypeName { get; set; } -> str"""
    @property
    def IsAssemblyNameSetExplicit(self) -> bool:"""IsAssemblyNameSetExplicit { get; } -> bool"""
    @property
    def IsFullTypeNameSetExplicit(self) -> bool:"""IsFullTypeNameSetExplicit { get; } -> bool"""
    @property
    def MemberCount(self) -> int:"""MemberCount { get; } -> int"""
    @property
    def ObjectType(self) -> _n_0_t_0:"""ObjectType { get; } -> Type"""
    def __init__(self, type: _n_0_t_0, converter: IFormatterConverter, requireSameTokenInPartialTrust: bool) -> SerializationInfo:...
    def __init__(self, type: _n_0_t_0, converter: IFormatterConverter) -> SerializationInfo:...
    def AddValue(self, name: str, value: _n_0_t_5):...
    def AddValue(self, name: str, value: _n_0_t_6):...
    def AddValue(self, name: str, value: float):...
    def AddValue(self, name: str, value: _n_0_t_10):...
    def AddValue(self, name: str, value: _n_0_t_9):...
    def AddValue(self, name: str, value: _n_0_t_8):...
    def AddValue(self, name: str, value: int):...
    def AddValue(self, name: str, value: _n_0_t_3):...
    def AddValue(self, name: str, value: _n_0_t_7):...
    def AddValue(self, name: str, value: _n_0_t_4):...
    def AddValue(self, name: str, value: bool):...
    def AddValue(self, name: str, value: object):...
    def AddValue(self, name: str, value: object, type: _n_0_t_0):...
    def GetBoolean(self, name: str) -> bool:...
    def GetByte(self, name: str) -> _n_0_t_3:...
    def GetChar(self, name: str) -> _n_0_t_4:...
    def GetDateTime(self, name: str) -> _n_0_t_5:...
    def GetDecimal(self, name: str) -> _n_0_t_6:...
    def GetDouble(self, name: str) -> float:...
    def GetEnumerator(self) -> SerializationInfoEnumerator:...
    def GetInt16(self, name: str) -> int:...
    def GetInt32(self, name: str) -> int:...
    def GetInt64(self, name: str) -> int:...
    def GetSByte(self, name: str) -> _n_0_t_7:...
    def GetSingle(self, name: str) -> float:...
    def GetString(self, name: str) -> str:...
    def GetUInt16(self, name: str) -> _n_0_t_8:...
    def GetUInt32(self, name: str) -> _n_0_t_9:...
    def GetUInt64(self, name: str) -> _n_0_t_10:...
    def GetValue(self, name: str, type: _n_0_t_0) -> object:...
    def SetType(self, type: _n_0_t_0):...
class SerializationInfoEnumerator(_n_1_t_0):
    @property
    def Name(self) -> str:"""Name { get; } -> str"""
    @property
    def ObjectType(self) -> _n_0_t_0:"""ObjectType { get; } -> Type"""
    @property
    def Value(self) -> object:"""Value { get; } -> object"""
class SerializationObjectManager(object):
    def __init__(self, context: StreamingContext) -> SerializationObjectManager:...
    def RaiseOnSerializedEvent(self):...
    def RegisterObject(self, obj: object):...
class StreamingContext(_n_0_t_13):
    @property
    def Context(self) -> object:"""Context { get; } -> object"""
    @property
    def State(self) -> StreamingContextStates:"""State { get; } -> StreamingContextStates"""
    def __init__(self, state: StreamingContextStates, additional: object) -> StreamingContext:...
    def __init__(self, state: StreamingContextStates) -> StreamingContext:...
class StreamingContextStates(_n_0_t_16, _n_0_t_17, _n_0_t_18, _n_0_t_19):
    All: int
    Clone: int
    CrossAppDomain: int
    CrossMachine: int
    CrossProcess: int
    File: int
    Other: int
    Persistence: int
    Remoting: int
    value__: int
class SurrogateSelector(ISurrogateSelector):
    def __init__(self) -> SurrogateSelector:...
    def AddSurrogate(self, type: _n_0_t_0, context: StreamingContext, surrogate: ISerializationSurrogate):...
    def RemoveSurrogate(self, type: _n_0_t_0, context: StreamingContext):...
